package architect.algorithn;

/**
 * 百钱买百鸡
 *
 * @author guanxin
 * @date 2018/5/7 16:35
 */

public class Chicken {

    // 公鸡5文钱一只，母鸡3文钱一只，小鸡3只一文钱，
    //用100文钱买一百只鸡,其中公鸡，母鸡，小鸡都必须要有，问公鸡，母鸡，小鸡要买多少只刚好凑足100文钱。
    public static void main(String[] args) {
        //solution1();
        solution2();
    }

    private static void solution1() {
        // 公鸡
        for (int x = 1; x < 20; x++) {
            // 母鸡
            for (int y = 1; y < 33; y++) {
                // 小鸡
                int z = 100 - x - y;
                if ((z % 3 == 0) && (x * 5 + y * 3 + z / 3 == 100)) {
                    System.out.printf("公鸡:%d只，母鸡:%d只，小鸡:%d只\n", x, y, z);
                }
            }
        }
    }
    // x+y+z=100        ①
    // 5x+3y+z/3=100    ②
    // 令②x3-① 可得
    // 7x+4y=100
    // y=25-(7/4)x      ③
    // 又因为0<y<100的自然数，则可令
    // x=4k             ④
    // 将④代入③可得
    // y=25-7k          ⑤
    // 将④⑤代入①可知
    // z=75+3k          ⑥
    private static void solution2() {
        int x, y, z;

        for (int k = 1; k <= 3; k++) {
            x = 4 * k;
            y = 25 - 7 * k;
            z = 75 + 3 * k;

            System.out.printf("公鸡:%d只，母鸡:%d只，小鸡:%d只\n", x, y, z);
        }
    }
}
